/******************************************
Cola_implementacion_JCF.java
Universidad del Valle de Guatemala
Algoritmos y Estructura de Datos
Autor:
    Martín Guzmán
Fecha: 01 de septiembre de 2009
Descripción:
*******************************************/
import java.util.ArrayList;
import java.lang.reflect.Array;
import java.lang.AssertionError;
import java.util.Comparator;
import java.util.PriorityQueue;


public class Cola_implementacion_JCF<G> implements Interfaz_cola<G> {
    private PriorityQueue<Nodo> cola_jcf;


    //método constructor
    public Cola_implementacion_JCF(int max){
        cola_jcf = new PriorityQueue(max, new Comparator<Nodo<G>>() {

            public int compare(Nodo<G> arg0, Nodo<G> arg1) {
                int num1 = (arg0.getNumero());
                int num2 = (arg1.getNumero());

                if(num1 > num2)
                    return 1;
                else if(num2 > num1)
                    return -1;
                return 0;
            }
        });//fija el tamaño de la cola y definición del compare que deseamos

    }


    //método para ver si la pila está vacía
    public boolean empty() {
        return cola_jcf.isEmpty();
    }

    //método para sacar el último elemento de la pila
    public G pop() {
        return (G)cola_jcf.remove().getValor();
    }


    //método para que ingrese un nuevo elemento a la pila
    public void push(int val, G Elemento_G) {
        //System.out.println(val+" "+Elemento_G.toString());
        Nodo<G>nodo =new Nodo(val,Elemento_G);
        cola_jcf.add(nodo);
    }

}